• Barry Python实战-从0到1搭建直播视频平台(更新完毕)

    Barry Python实战-从0到1搭建直播视频平台(更新完毕)

    课程介绍课程来自于BarryPytho实战-从0到1搭建直播视频平台(更新完毕)文件目录image6520502e46d306d6817dc4d2482c1682805.jgdcf943799f88322c76f65535c08c6.jg31840f68628af9f3398e312ee782f.jg6521023100371359f372893a69913fe3d0756.jg0fedc838595a2072ec0e218cc0227.jge08f25e8283a1fe86015c2e940017.jg8fa5c0d740459fcf58a01dd157229c.jgff12df195094686d1141dedc8c2a7037.jg055c989c8677c4a7ff724f6cdfdedee0.jg185d221c04e84c3846d6f3c7e5d484d0.jg220e00d18985cc3a622f1f9d9e09f4.jgyyfaa61924e3ea5a9a66cda541830.jg65273612747996039f0342d7de8107259faea.jg2dc08251e3606d58e409715cd60.jg8e937d5960d7a087e5e5d406242e1.jgc158aaa4f02edf80c040aa202ed7f09e.jg649ea568d478087d522f1d427f44327.jg671f01037fd49dedc1f10e97a18de4c1.jg5142f6961eed796c3f5dac594a3e5dcd.jgvideo开篇词|打通前后端技术,玩转视频平台1ffeac1-18721043d2-0000-0000-01d-dacd.m4开篇词|打通前后端技术,玩转视频平台.md开篇词|打通前后端技术,玩转视频平台.df01|初识Pytho(上):入门Pytho你应该怎么做?.md01|初识Pytho(上):入门Pytho你应该怎么做?.df01|初识Pytho(上):入门Pytho你应该怎么做?.m302|初识Pytho(下):入门Pytho你应该怎么做?.m302|初识Pytho(下):入门Pytho你应该怎么做?.md02|初识Pytho(下):入门Pytho你应该怎么做?.df开篇词|打通前后端技术,玩转视频平台.m303|初识_We:学习_We_最好的方式是什么?.md04|Vue_概览:Vue_哪些内容是你必须要掌握的?.md05|需求分析:如何确定在线视频平台的核心功能模块?.md06|框架搭建:如何用_vue-cli_搭建一个前端框架?.md07|路由设计:如何借助_Vue_Router_设计出更合理的路由?.md08|个人中心与权限:如何玩转各类系统的权限管理?.df08|个人中心与权限:如何玩转各类系统的权限管理?.md09|ElemetUamCSS:如何设计页面逻辑与功能点?.df10|详情页实现:如何实现需求定制化?.df11|DPlayer播放器综合应用:怎样实现自己的第一个视频播放器?.df12|视频发布功能实现:怎样满足用户发布视频的需求?.df13|数据中心应用:平台数据大脑应具备哪些核心指标?.df14|EChart实战:可视化如何更好地服务于创作者?.df15|直播中心搭建(一):如何通过Video.j配置直播中心?.df16|直播中心搭建(二):如何通过VideoJ配置直播中心?.df17|项目打包与优化:前端必备的Weack打包配置详解.df...

    2024-04-14

  • 新版Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课 - 带源码课件

    新版Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课 - 带源码课件

    资源名称:新版Scray打造搜索引擎畅销4年的Pytho分布式爬虫课-带源码课件资源简介:未来是什么时代?是数据时代!数据分析服务、互联网金融,数据建模、自然语言处理、医疗病例分析hellihelli越来越多的工作会基于数据来做,而爬虫正是快速获取数据最重要的方式,相比其它语言,Pytho爬虫更简单、高效。...

    2024-02-23 scrapypython模拟登录

  • Python基础+数据科学入门

    Python基础+数据科学入门

    资源名称:【深度之眼】Pytho基础+数据科学入门资源简介:Pytho基础+数据科学入门。...

    2024-02-05 茅山法术大全秘籍 茅山法术是真的吗

  • ibm服务器价格

    ibm服务器价格

    IBM服务器价格IBM服务器是一款功能强大的计算系统,可以满足各种各样的业务需求。IBM服务器的价格取决于其配置、性能和功能。以下是影响IBM服务器价格的一些常见因素:型号:IBM服务器有多种型号,每种型号都有其独特的特性和功能。例如,IBMPowerSytem服务器是一款高性能服务器,非常适合处理复杂的工作负载。而IBMSytemx服务器是一款经济实惠的服务器,非常适合小型企业和家庭办公室。处理器:IBM服务器有多种处理器可供选择,包括英特尔至强处理器、IBMPower处理器和IBMzSytem处理器。不同处理器的性能和价格也不同。内存:IBM服务器的内存容量可以从几GB到几TB不等。内存容量越大,服务器可以处理的并发任务也就越多。存储:IBM服务器有多种存储选项可供选择,包括硬盘驱动器、固态硬盘和闪存存储。不同存储设备的速度和价格也不同。网络:IBM服务器有多种网络选项可供选择,包括千兆以太网、万兆以太网和光纤通道。不同网络选项的速度和价格也不同。一般来说,IBM服务器的价格从几千美元到几十万美元不等。以下是IBM服务器的一些型号及其价格:IBMPowerSytemE880:售价从35,000美元到100,000美元不等。IBMSytemx3650M5:售价从2,000美元到5,000美元不等。IBMSytemx3500M5:售价从1,500美元到3,000美元不等。IBM服务器的价格可能会随着时间的推移而变化。因此,在购买IBM服务器之前,请务必与IBM销售代表联系以获取最新价格信息。IBM服务器的特点IBM服务器具有以下特点:高性能:IBM服务器采用先进的处理器和存储技术,可以提供卓越的性能。可靠性高:IBM服务器经过严格的测试和认证,可以提供高可靠性。可扩展性强:IBM服务器可以根据业务需求进行扩展,以满足不断增长的需求。安全性强:IBM服务器具有强大的安全功能,可以保护数据和应用程序免受未经授权的访问。易于管理:IBM服务器具有易于使用的管理工具,可以帮助管理员轻松地管理服务器。IBM服务器的应用IBM服务器被广泛应用于各种行业,包括:金融:IBM服务器被用于处理交易、分析数据和运行应用程序。零售:IBM服务器被用于管理销售、库存和客户关系。制造:IBM服务器被用于控制生产过程、管理供应链和优化产品质量。医疗保健:IBM服务器被用于存储和处理患者数据、管理预约和运行应用程序。教育:IBM服务器被用于存储和处理学生数据、管理课程和运行应用程序。IBM服务器还可以用于其他行业,例如政府、能源和交通运输。...

    2024-01-09 ibm的服务器 ibm服务器干什么用的

  • dell服务器数据恢复

    dell服务器数据恢复

    戴尔服务器数据恢复戴尔服务器是许多企业和组织的重要组成部分。它们存储着大量重要的数据,包括财务记录、客户信息和敏感数据。如果这些数据丢失或损坏,可能会对企业造成灾难性后果。戴尔服务器数据恢复可以帮助企业在数据丢失或损坏后恢复数据。戴尔提供多种数据恢复服务,包括:远程数据恢复:戴尔工程师可以通过远程连接到服务器来恢复数据。这是一种快速、方便的方法,但可能无法恢复所有数据。现场数据恢复:戴尔工程师可以到现场来恢复数据。这是一种更彻底的方法,但可能需要更长的时间和更高的成本。数据恢复实验室:戴尔数据恢复实验室可以恢复严重损坏的数据。这是一种最昂贵的方法,但也是最可靠的方法。戴尔服务器数据恢复的成本取决于数据丢失或损坏的严重程度以及所选择的数据恢复方法。如何选择戴尔服务器数据恢复服务在选择戴尔服务器数据恢复服务时,需要考虑以下因素:数据丢失或损坏的严重程度:如果数据丢失或损坏不严重,则远程数据恢复可能就足够了。如果数据丢失或损坏严重,则可能需要现场数据恢复或数据恢复实验室。所需的数据恢复速度:如果需要快速恢复数据,则远程数据恢复或现场数据恢复可能是更好的选择。如果数据恢复不需要那么快,则数据恢复实验室可能是更好的选择。预算:戴尔服务器数据恢复的成本可能很高。在选择数据恢复服务时,需要考虑预算。如何预防戴尔服务器数据丢失为了防止戴尔服务器数据丢失,可以采取以下措施:定期备份数据:定期备份数据是防止数据丢失的最简单、最有效的方法。可以使用戴尔服务器自带的备份工具或第三方备份软件来备份数据。使用防病毒软件:防病毒软件可以帮助保护服务器免受病毒和恶意软件的攻击。病毒和恶意软件可能会损坏数据或导致数据丢失。保持系统更新:戴尔会定期发布软件更新来修复漏洞并提高服务器的安全性。应该及时安装这些更新以保护服务器免受攻击。...

    2024-01-09 戴尔服务器售后服务热线 戴尔服务器官网

  • emule服务器列表

    emule服务器列表

    Emule服务器列表:eMule服务器列表是eMule软件中用于连接到eMule网络的服务器列表。eMule网络是一个基于KAD网络的分布式文件共享网络,用户可以通过eMule软件连接到eMule网络并共享文件。eMule服务器列表通常包含数百或数千个服务器,这些服务器分布在世界各地。当用户连接到eMule网络时,eMule软件会自动选择一个服务器并连接到该服务器。如果该服务器无法连接,eMule软件会自动尝试连接到其他服务器。为什么要使用eMule服务器列表?使用eMule服务器列表可以提高eMule软件的连接速度和稳定性。当用户连接到一个服务器时,eMule软件会自动从该服务器中获取其他用户的共享文件列表。如果该服务器中的共享文件列表不完整,eMule软件就无法获取到所有用户的共享文件列表。因此,使用一个完整的eMule服务器列表可以提高eMule软件的连接速度和稳定性。如何获取eMule服务器列表?eMule服务器列表可以从Iteret上获取。有很多网站提供eMule服务器列表,例如:eMule官方网站eMuleMod网站eMuleDokeyServer网站用户可以从这些网站上下载eMule服务器列表。如何使用eMule服务器列表?要使用eMule服务器列表,用户需要将其添加到eMule软件中。在eMule软件中,单击“服务器”菜单,然后选择“添加服务器”。在弹出的对话框中,粘贴eMule服务器列表,然后单击“确定”。eMule软件会自动将eMule服务器列表中的服务器添加到eMule软件中。注意事项:eMule服务器列表会定期更新,因此用户需要定期更新eMule服务器列表。eMule服务器列表中的服务器可能会出现故障或关闭,因此用户需要定期检查eMule服务器列表并删除故障或关闭的服务器。eMule服务器列表中的服务器可能会被恶意用户劫持,因此用户需要小心使用eMule服务器列表。...

    2024-01-09 服务器共享文件夹怎么设置 服务器共享文件夹无法访问

  • lol无法连接服务器 你想重新连接吗

    lol无法连接服务器 你想重新连接吗

    一、无法连接服务器的原因网络问题:网络连接不稳定或中断,导致无法连接到服务器服务器问题:服务器出现故障或维护,导致无法连接。防火墙或安全软件:防火墙或安全软件阻止了游戏连接到服务器。游戏文件损坏:游戏文件损坏或不完整,导致无法连接到服务器。其他原因:其他未知原因导致无法连接到服务器。二、重新连接的方法检查网络连接:确保网络连接稳定,没有中断。检查服务器状态:访问英雄联盟官方网站或社交媒体,查看服务器是否有故障或维护。调整防火墙或安全软件设置:允许游戏通过防火墙或安全软件。验证游戏文件:在英雄联盟客户端中,单击“设置”gt“常规”gt“验证文件”。重启游戏和电脑:关闭英雄联盟客户端和电脑,然后重新启动。联系客服:如果以上方法都无法解决问题,请联系英雄联盟客服寻求帮助。三、避免无法连接服务器的技巧确保网络连接稳定:使用有线网络而不是无线网络,并避免在网络拥堵时玩游戏。保持游戏文件的完整性:不要修改或删除游戏文件。定期更新游戏:及时安装英雄联盟的更新补丁。关闭不必要的后台程序:关闭不必要的后台程序可以释放系统资源,提高游戏性能和稳定性。使用游戏加速器:游戏加速器可以优化网络连接,降低延迟,提高游戏稳定性。...

    2024-01-09 服务器安全软件有哪些 服务器安全软件排行

  • DNF提示正在连接服务器是怎么回事

  • 服务器十大品牌排行榜_服务器有哪些品牌

  • Python爬虫——关键字爬取百度图片

  • 《语料库语言学及Python实现》李安著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《语料库语言学及Pytho实现》【作者】李安著【页数】223【出版社】济南:山东大学出版社,2018.08【ISBN号】978-7-5607-6209-8【分类】语料库-语言学;软件工具-程序设计【参考文献】李安著.语料库语言学及Pytho实现.济南:山东大学出版社,2018.08.图书封面:《语料库语言学及Pytho实现》内容提要:本书主要包括语料库语言学的基本理论和语料库建设与研究的Pytho实现两部分内容。作者将语料库语言学理论和Pytho方案相结合,介绍了语料库语言学、语料库的设计与研发、语料库的研究范式、Pytho的基本原理与编程原理、基于Pytho的语料获取等内容。...

    2023-12-21 语料库语言学的研究方法主要依赖于什么技术? 语料库语言学研究方法

  • 《语言数字人文系列 基于Python的语料库翻译 数据分析与理论探索》管新潮,陆晓蕾作|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《语言数字人文系列基于Pytho的语料库翻译数据分析与理论探索》【作者】管新潮,陆晓蕾作【丛书名】语言数字人文系列【页数】223【出版社】上海:上海交通大学出版社,2022.08【ISBN号】978-7-313-27035-1【价格】78.00【分类】软件工具-程序设计-应用-语料库-翻译学-研究【参考文献】管新潮,陆晓蕾作.语言数字人文系列基于Pytho的语料库翻译数据分析与理论探索.上海:上海交通大学出版社,2022.08.图书封面:《语言数字人文系列基于Pytho的语料库翻译数据分析与理论探索》内容提要:本书旨在依托Pytho编程语言就语料库翻译这一方向展开理论深化与技术创新方面的融合式探索,其内容不仅涉及学界的语料库翻译学,也涉及业界的语料库与翻译。全书分为九章内容:语料库翻译概述、多变量协同效应、译文可读性、翻译对等的短语特征、翻译知识库的构建与应用、语言结构识别与译后编辑、翻译质量评估、文本情感对比分析以及双语工具开发与应用。第1章是对语料库翻译的学界研究和业界应用的综合性概述与分析:第2-8章均以翻译理论为原点,探索翻译理论与当下技术实现融合的可能性。第9章呈现了多种双语Pytho技术解决方案。全书既有理论描述,也述及实践应用,强调了理论与实践并驾齐驱的可行性。本书适合高等院校翻译学等专业的师生以及从事语言服务或翻译实践活动的爱好者阅读使用。...

    2023-12-21 epub mobi azw3哪个好 epub mobi pdf区别

  • pathy编程和python(path)

    Pathy编程和Pytho(ath)路径(ath)是一个Pytho模块,可用于轻松地操作文件路径。它提供了许多有用的函数,可以帮助您解析、拼接和规范化路径。安装要安装路径,您可以使用以下命令:iitallath基本用法要使用路径,您需要首先创建一个路径对象。您可以通过传递一个字符串路径或另一个路径对象来创建路径对象。gtgtgtfromathimortPathgtgtgt=Path("/home/uer/Documet/myfile.txt")一旦您创建了一个路径对象,您就可以使用它来执行各种操作。例如,您可以获取路径的名称、扩展名、父目录或子目录。gtgtgt.ame'myfile.txt'gtgtgt.ext'.txt'gtgtgt.aretPath("/home/uer/Documet")gtgtgt.childre()[Path("/home/uer/Documet/file1.txt"),Path("/home/uer/Documet/file2.txt")]您还可以使用路径对象来拼接路径。例如,以下代码将当前路径与子目录“my_udirectory”连接起来:gtgtgt=Path("/home/uer/Documet")gtgtgt/"my_udirectory"Path("/home/uer/Documet/my_udirectory")高级用法路径模块还提供了一些高级功能,例如glo()函数。该函数可用于查找与给定模式匹配的文件或目录。例如,以下代码将找到当前目录中所有以“.txt”结尾的文件:gtgtgt=Path(".")gtgtgt.glo("*.txt")[Path("./file1.txt"),Path("./file2.txt")]路径模块是一个功能强大且易于使用的库,可用于轻松地操作文件路径。它非常适合需要处理大量路径的脚本和程序。Pathy编程Pathy是一种基于Pythoath模块的编程范式。它提倡使用路径对象来表示和操作文件路径。Pathy编程可以使您的代码更加简洁、易懂和可维护。以下是一些Pathy编程的示例:#创建一个指向当前目录的路径对象=Path(".")#获取当前目录中所有以“.txt”结尾的文件file=.glo("*.txt")#循环遍历这些文件并打印它们的名称forfileifile:rit(file.ame)#创建一个指向子目录“my_udirectory”的路径对象=Path(".")/"my_udirectory"#检查子目录是否存在if.exit():#如果子目录存在,则循环遍历它并打印其内容forchildi.childre():rit(child.ame)Pathy编程是一种非常强大的编程范式,可以帮助您轻松地管理文件路径。它非常适合需要处理大量路径的脚本和程序。总结路径模块是一个功能强大且易于使用的库,可用于轻松地操作文件路径。Pathy编程是一种基于Pythoath模块的编程范式,提倡使用路径对象来表示和操作文件路径。Pathy编程可以使您的代码更加简洁、易懂和可维护。...

    2023-12-21 骆驼祥子目录 草房子目录

  • 《高性能Linux服务器运维实战》高俊峰编著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《高性能Liux服务器运维实战》【作者】高俊峰编著【丛书名】Liux技术与应用丛书【页数】474【出版社】北京:机械工业出版社,2020.05【ISBN号】978-7-111-65549-7【价格】129.00【分类】Liux操作系统【参考文献】高俊峰编著.高性能Liux服务器运维实战.北京:机械工业出版社,2020.05.图书封面:《高性能Liux服务器运维实战》内容提要:本书贯穿实战、实用、通俗、易懂的特点,在内容上注重实战化,统改真实的生产环境从多个方面介绍运维工作中的方方面面。通过真实案例的学习,可以使读者深入地掌握Liux运维技术的各种经验和技巧,从而真正提高企业实战能力。本书以Liux运维平台下的开源应用软件为中心,涉及Liux运维的各个方面,主要从系统基础运维、系统性能调优、智能运维监控、运维实战案例4个方面展开介绍。全书贯穿了由点及线、由线及面的学习方法,既可以让初学者参考学习,也可以帮助有一定基础的中高级Liux运维管理人员进阶,使不同层次的读者都能从本书受益。...

    2023-12-12 高俊峰画每平尺价格 高俊峰书法个人简历

  • Python高并发与高性能编程 原理与实践》周宇凡著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《Pytho高并发与高性能编程原理与实践》【作者】周宇凡著【页数】226【出版社】北京:机械工业出版社,2023.06【ISBN号】978-7-111-72939-6【价格】89.00【分类】软件工具-程序设计【参考文献】周宇凡著.Pytho高并发与高性能编程原理与实践.北京:机械工业出版社,2023.06.图书封面:图书目录:《Pytho高并发与高性能编程原理与实践》内容提要:这是一本帮助Pytho初级码农向高手进阶的专业指导书,可帮助所有Pytho从业者摆脱因ChatGPT等产品带来的职业危机。书中不仅对Pytho必备基础知识进行了解读,对所有的Pytho高级特性进行原理级剖析,还囊括了大量指导实践的内容,可以帮助读者真正实现高并发、高性能编程。本书从Pytho高级基础知识开始,逐步介绍高并发概念在Pytho语言中的实现过程、高性能特性是如何在Pytho语言中实现的,最后结合本书作者真实的项目经验,应用Pytho高并发、高性能特性来解决真实项目开发过程中遇到的问题和优化项。本书包括4篇19章内容。基础篇:对Pytho高级编程所涉概念、当下主流的Pytho3.X版本进行系统性介绍,这是进行Pytho高级编程必备的知识,也是顺利阅读本书的基础。高并发篇:对Pytho如何实现高并发进行原理级解读,其中包括Pytho对线程的实现与操作、Pytho对协程的实现与操作,以及Pytho中的锁原语、原子性和线程池的实现原理和应用步骤等特色内容。高性能篇:以对Pytho代码进行性能优化为根本目标,深度剖析了如何对基本的Pytho代码进行性能优化,如何基于Profile对Pytho代码进行性能优化,如何基于PythoC拓展对Pytho代码进行性能优化,以及如何对优化前后的Pytho代码性能指标进行监测与统计。实践篇:以常见的邮件发送、日志打印、登录注册等功能为例,详细介绍各种功能如何通过Pytho实现高并发,其中不仅包括实现步骤,还包括如何基于Locut性能测试框架对上述功能进行压力测试。另外,本书还包括两个附录,从实操角度对Djago和FatAPI这两个常用的Pytho框架进行介绍。《Pytho高并发与高性能编程原理与实践》内容试读基础篇■第1章Pytho高级编程所涉及的基础概念·第2章Pytho3.X版本简析:■■周面■度■■■图■■夏:■■■■是间■■■■■■■■每Cte%第1章Pytho高级编程所涉及的基础概念本章将为读者介绍Pytho高级编程中的一些基础概念和定义,这些基础概念和定义会贯穿全书,需要读者根据自身的实际水平来有选择地学习。本章内容包括Pytho中的类,Pytho中的对象,进程与线程,多线程与多进程等。1.1Pytho中的类Pytho作为一门面向对象的高级编程语言,提供了丰富的面向对象编程的实现,包括面向对象语言中的类、对象。对于任意一门面向对象的高级编程语言,最基础的特性都是封装、继承和多态,而实现这些特性的基础正是面向对象编程语言中的类。类是真实世界中的事务在Pytho语言中的一种实现,其规定了真实世界中的事务在Pytho语言中的组成,是使用Pytho来描绘真实世界中事务的手段。在真实世界中,事务可能是一个非常大的问题,也可能是一个非常小的问题,即在真实世界中,事务本身不是一个定数,所以,Pytho中类的设计也是如此。Pytho中的类规定了真实世界中的事务在Pytho中的定义和实现,我们可以通过以下代码定义Pytho中的类:cla【claName]://相应的操作执行上述代码即可创建一个名为[claName]的Pytho类。在Pytho中存在一个全局解释器,该解释器用来执行Pytho代码。Pytho解释器将处理类的过程全部执行完毕后,通过上述代码创建的Pytho类才能被真正创建。Pytho中的类在被创建之后,在类的同一第1章Pytho高级编程所涉及的基础概念3生命周期下,就不允许继续修改了,因为该类已经被转义为Pytho解释器可识别的代码,这些代码已经被解释和执行了。如果需要继续修改该Pytho类,我们可以先在该Pytho类中编写需要修改的内容,然后手动执行并重新解释。在了解了Pytho类的创建过程和解释过程之后,我们真正创建一个Pytho类来进一步了解Pytho类的组成。根据上述创建类的代码,我们创建一个名为HelloPytho的类,并且在HelloPytho类中先定义两个成员变量trA和trB,再定义两个方法:一个方法被声明为Hello,另一个方法被声明为World。创建HelloPytho类的代码如下所示。claHelloPytho:trA"trA"trB"trB"defHello(elf):adefWorld(elf):a我们再来看一下HelloPytho类所在的目录结构,以PyCharm代码编辑器为例,HelloPytho所在目录结构如图1-1所示。回Project,图÷一HelloWorld..y×ahighProD:\ytho3.9.5\vevm1claHelloPytho:highProtrA"trA"gtD.ideatrB"trB"gtveviitydefHello(elf):tagi.y6aettig.y7url.y8defWorld(elf):wgi.y9ahgexamleiityHelloWorld.y图1-1HelloPytho所在目录结构这里是在一个名为highPro的项目中创建HelloPytho类。highPro项目是本书所使用的项目,该项目会在后文进行介绍通过图l-l可知,HelloPytho类所在的Pytho文件名为HelloWorld,并不是HelloPytho,这在Pytho语言中是允许的,但是在Java语言中会直接报错,连编译都不能。这就是Pytho语言和Java语言最显著的区别。Pytho解释器在解释Pytho代码时,会先对Pytho代码进行编译,在编译通过之后,才会将编译的Pytho代码交给Pytho解释器(虚拟机)来执行,这是Pytho代码解释的4基础篇全过程,而在这个过程中会有不同类型的文件产出。我们以HelloPytho类为例展开介绍,如图1-2所示。HelloPythoHelloPytho类字节码文件类可运行代码HelloPytho源代码Pytho编译器Pytho虚拟机Pytho解释器图1-2HelloPytho类代码执行过程通过图1-2可知,HelloPytho类会先被Pytho编译器进行编译。在编译阶段,Pytho编译器会检查HelloPytho类代码是否符合Pytho语言所规定的语法格式和语义规范,还会检查各种变量的定义和引用等。只有这些检查项全部通过,编译才能通过,这些检查项中只要有一项存在异常或错误,Pytho编译器就会立即中断编译,向用户抛出异常或错误重复该过程,直到编译通过。在HelloPytho类编译通过后会输出HelloPytho类字节码文件,如图1-3所示。名称修改日期类型大小Helloworld.cytho-39.ycPVC文件图1-3HelloPytho类字节码文件通过图1-3可知,HelloPytho类生成的字节码文件名为HelloWorld.cytho-39.yc,大小为1KB。HelloPytho类字节码文件名称由4部分组成·HelloWorld:表示Pytho文件的名称,即HelloPytho类所在的Pytho文件的名称·cytho:表示HelloPytho类被哪种虚拟机编译,本书使用的是Pytho默认实现的CPytho虚拟机,所以这里是cytho。。39:表示当前Pytho版本在CPytho虚拟机中对应的字节码版本号,该版本号默认由采用的Pytho版本的第一位大版本号和第二位小版本号组成,忽略其余位数的版本号。本书采用的Pytho版本是3.9.5,取前两位来表示这一字节码版本号,忽略后面的5,所以这里是39。·yc:这是文件的后缀名,表示当前的文件类型是Pytho字节码文件,而不是Java字节码文件。Java字节码文件名以javac结尾。接着将HelloPytho类字节码文件交由CPytho虚拟机处理。CPytho虚拟机的主要工作是解析HelloPytho类字节码文件,并根据该字节码文件中的内容为HelloPytho类中的各种变量分配内存空间,为各种方法创建执行所需的栈帧空间。如果该类中存在类的实例,第1章Pytho高级编程所涉及的基础概念◆5CPytho虚拟机会为该类的实例分配内存空间,并初始化该类的实例的其他属性。下面介绍HelloPytho类字节码文件中的底层内容,以便更好地理解Pytho类字节码文件,如图1-4所示。HelloWorld.cytho-39.y...Offet0123456789ABCDEFANSIASCII00000000610D0D0A00000000DA808C6286000000DEat00000010E3000000000000000000000000000000000000200003000000400000007312000000470000000030640064018400640183025A0064025300dddf2d0000004029036300000000000000000000000000c0000005000000002000000400000007324000000360000006065005A0164005A0264015A0364025A04ezdZdzdZ000000706403640484005A056405640684005a06ddZdd.Z00000080640753002908DA0B48656C6C6F507974d6BelloPyt00000090686F6EDA0473747241DA047374724263houtrADtrBc000000A001000000000000000000000001000000000000B001000000430000007304000000640053d000000C000A9014EA900A901DA0473656C667205gNgg0elfr000000D00000007205000000A0D48656C6C6E57G日e11aW000000E06F726C642E7079DA48656C6C6F0500orld.yuHello000000F0000073020000000001A1148656C6C6型zHello00000100507974686F6E2E48656C6C6F63010000Pytho.Helloc00000110000000000000000000010000000100000000012000430000007304000000640053007204dSr00000130000000720500000072060000007205000000014000007205000000208000000DA05576FWo00000150726C640800000000000000017A11rld0000016048656C6C6F507686F6E2E576E726CBelloPytho.Worl00000170644E2907DA085616D65DAOAdN)amet00000180SF5F6D6F64756C%5FDA57175modulequ00000190616C6E616D655E02000000720300alamer000001A000007209000000720A00000072050000000001B000720500000072050000007208000000000001C0720100000001000073080000000801000001D004010402080372010000004E29017201N)E000001E000000072050000007205000000720500000001F000007208000000DA083C6D6厘64756C650000002003E01000000F300000000图1-4HelloPytho类字节码文件中的底层内容这里我们只需要看3个部分。第一部分是图1-4所示的前8位,即610D0D0A。这部分是Pytho字节码的第一部分,即Pytho语言中的魔数。CPytho虚拟机根据这8位内容判断当前需要处理的字节码文件是不是Pytho字节码文件。如果一个字节码文件的头内容中包含610D0D0A,就表示该字节码文件是Pytho字节码文件,此时CPytho虚拟机才会继续向下解析该文件,否则会终止解析,并向用户抛出异常或错误。CPytho虚拟机所能识别的Pytho字节码的魔数,同样会随着Pytho版本而发生改变,并不是固定不变的。第二部分是图1-4所示的第8列到第B列的内容,即DA808C62。这8位表示Pytho字节码文件头的大小。我们可以使用数据解释器计算出该类字节码文件头的大小,如图1-5所示。第三部分是Offet,即偏移量从00000000往下一直到该文件结束(不包含00000000】的内容,这部分就是HelloPytho类中的字段、方法或者实例被编译成字节码之后的内容。6基础篇HelloWorld.cytho-39.y...Offet0123456789ABCDEFANSIASCII00000000610D0D0A00000000DA808C6286000000aDEat00000010E3000000000000000000000000000020000300000040000000731200数据解释器00000030640064018400640183025A00000000402903630000000000000000008Bit(±:980000005000000002000000400000007316Bit(±y-31,1340000006065005A0164005A0264015A0332Bit(±34,402图l-5HelloPytho类字节码文件头的大小回到我们平常所说的Pytho代码解释过程,结合笔者对HelloPytho类代码的解析过程可以得出,Pytho语言中所说的解释器其实就是Pytho编译器和Pytho虚拟机结合的产物,即Pytho代码的编译和Pytho虚拟机的处理是同一时机触发的,只不过这个过程没有对外暴露而已。1.2Pytho中的对象本质上来说,Pytho中的对象是对Pytho中的类进行实例化后输出的产物。Pytho中的对象和Pytho中的基本类型变量在实现方式上是完全不同的。对于Pytho中的基本类型变量来说,Pytho官方在Pytho语言层面已经进行了规定或约束。以数字类型变量来说,在Pytho语言对外发布时,数字类型已经被固化到了Pytho语言当中,并且通过一定的数字占位,与Pytho虚拟机中的语义规范进行对应,即我们在Pytho中声明了数字类型的基本变量之后,Pytho虚拟机通过已经固化好的数字占位来识别这一变量所属的类型」Pytho中的对象本身也是一种变量,只不过这种变量的类型是随机的、可变的,这是与Pytho中的基本类型变量最大的不同之处。Pytho官方规定了Pytho对象在Pytho虚拟机中的存活方式,即以一种对象地址的形式在Pytho虚拟机中存在,且对象的生命周期交由Pytho虚拟机自动管理,不需要开发者手动管理Pytho对象的生命周期。需要开发者做的,只是创建Pytho对象在Pytho中,创建一个类的对象的代码如下所示claExamlecla:NumA6NumB3defdemo(elf):retur'helloytho'ExamleclaojectExamlecla()在上述代码中,我们定义了一个名为ExamleCla的类,并且在ExamleCla类···试读结束···...

    2023-12-12 python mobi库 python mobile app

学习考试资源网-58edu © All Rights Reserved.  湘ICP备12013312号-3 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园